package com.family.pedigree.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

import java.time.LocalDate;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.List;

import com.family.pedigree.domain.dto.FamilyNodeDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 家族树节点
 * </p>
 *
 * @author forever
 * @since 2024-11-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("family_tree_node")
public class FamilyTreeNode implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 家族树id
     */
    private Long familyId;

    /**
     * 家族名称
     */
    private String familyName;

    /**
     * 节点名称
     */
    private String nodeName;

    /**
     * 曾用名
     */
    private String formerName;

    /**
     * 性别（男 女）
     */
    private String gender;

    /**
     * 代级
     */
    private String familyRank;

    /**
     * 个人头像
     */
    private String selfImage;

    /**
     * 出生日期
     */
    private LocalDateTime birthday;

    /**
     * 是否删除( 0- 未删除 1-删除)
     */
    private Integer isDelete;

    /**
     * 死亡日期
     */
    private LocalDate deathday;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 电子邮箱
     */
    private String email;

    /**
     * 电话号码
     */
    private String phone;

    /**
     * 户籍地址
     */
    private String permanentAddress;

    /**
     * 居住地址(详细地址)
     */
    private String residentialAddress;

    /**
     * 现居省份（山西省）
     */
    private String province;

    /**
     * 政治面貌
     */
    private String politicsFace;

    /**
     * 微信号
     */
    private String wxNumber;

    /**
     * 大学
     */
    private String collage;

    /**
     * 教育背景（0-小学 1-初中 2-高中 3-大专 4-本科 5-硕士 6-博士 7-其他）
     */
    private Integer education;

    /**
     * 大学专业
     */
    private String major;

    /**
     * 是否死亡（Y-N）
     */
    private String isDeath;

    /**
     * 毕业日期
     */
    private LocalDate graduationDate;

    /**
     * 个人履历
     */
    private String personalRecord;

    /**
     * 个人特长
     */
    private String personalSpecialty;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 修改人
     */
    private String updateBy;

    /**
     * 生活剪影
     */
    @TableField(exist = false)
    private List<FamilyLifeShow> lifeShows;

    /**
     * 子节点
     */
    @TableField(exist = false)
    private List<FamilyTreeNode> children;


}
